#include "pc.h"

HumanPC::HumanPC()
: Player( 3, 3, 3, 6 )
{
}

bool HumanPC::Name( std::string* name, bool* plural, uint article ) const
{
    if ( name->empty() && article == ARTICLE_INDEFINITE )
        *name += "a ";
    if ( article == ARTICLE_PLURAL )
        *name += "humans";
    else
        *name += "human";
    return true;
}

bool HumanPC::Flammable( uint* flammableType ) const
{
    *flammableType |= FLAMMABLE_BURN_SHORT;
    return true;
}

GnomePC::GnomePC()
: Player( 2, 3, 5, 5 )
{
}

bool GnomePC::Name( std::string* name, bool* plural, uint article ) const
{
    if ( name->empty() && article == ARTICLE_INDEFINITE )
        *name += "a ";
    if ( article == ARTICLE_PLURAL )
        *name += "gnomes";
    else
        *name += "gnome";
    return true;
}

bool GnomePC::Flammable( uint* flammableType ) const
{
    *flammableType |= FLAMMABLE_BURN_SHORT;
    return true;
}

SaurianPC::SaurianPC()
: Player( 3, 4, 3, 5 )
{
}

bool SaurianPC::Name( std::string* name, bool* plural, uint article ) const
{
    if ( name->empty() && article == ARTICLE_INDEFINITE )
        *name += "a ";
    if ( article == ARTICLE_PLURAL )
        *name += "saurians";
    else
        *name += "saurian";
    return true;
}

bool SaurianPC::Flammable( uint* flammableType ) const
{
    *flammableType |= FLAMMABLE_BURN_EXTRA_SHORT;
    return true;
}

PanserbjornePC::PanserbjornePC()
: Player( 5, 2, 3, 5 )
{
}

bool PanserbjornePC::Name( std::string* name, bool* plural, uint article ) const
{
    if ( name->empty() && article == ARTICLE_INDEFINITE )
        *name += "a ";
    *name += "panserbjorne";
    return true;
}

bool PanserbjornePC::Flammable( uint* flammableType ) const
{
    *flammableType |= FLAMMABLE_BURN_LONG | FLAMMABLE_CHAR;
    return true;
}